10 REM * SORTIERTES DIRECTORY * 20 POKE53281,11:POKE53280,11:POKE53272,21:PRINT"[147][159]" 30 IFZZ=999THEN380 40 ZZ=999 50 PRINTTAB(10)"SORTIERTES DIRECTORY" 60 PRINTTAB(10)"--------------------" 70 PRINTTAB(17)"MOMENT" 80 PRINTTAB(12)"DATEN WERDEN VON" 90 PRINTTAB(12)"DISKETTE GELESEN" 100 PRINTTAB(12)"UND SORTIERT !!!" 110 OPEN8,8,0,"$":OPEN4,4,0:G$=CHR$(34):BL$=" ":P$=CHR$(9) 120 DIMD$(128),F$(128),D%(128),G%(128):N=-1 130 GET#8,A$:IFA$=""THEN230 140 N=N+1:GET#8,A$:GET#8,A$:GET#8,B$:IFA$<>""THENG%(N)=ASC(A$) 150 IFB$<>""THENG%(N)=G%(N)+ASC(B$)*256 160 GET#8,A$:IFA$=""ANDN<>0THEN230 170 IFA$<>G$THEN160 180 GET#8,A$:IFA$<>G$THEND$(N)=D$(N)+A$:GOTO180 190 GET#8,A$:IFA$=BL$THEN190 200 F$(N)=A$ 210 GET#8,A$:IFA$<>""THEN210 220 GOTO130 230 N=N-1:CLOSE8:FORI=1TON:D%(I)=I:NEXT 240 L=INT((N)/2)+1:R=N 250 IFL>1THEN290 260 IFR<=1THEN280 270 H=D%(L):D%(L)=D%(R):D%(R)=H:R=R-1 280 GOTO300 290 L=L-1 300 I=L:J=2*I:H=D%(I):H$=D$(H):IFJ>RTHEN370 310 IFJ>=RTHEN340 320 IFD$(D%(J))>=D$(D%(J+1))THEN340 330 J=J+1 340 IFJ>RTHEN370 350 IFH$>=D$(D%(J))THEN370 360 D%(I)=D%(J):I=J:J=2*I:GOTO310 370 D%(I)=H:IFR<>1THEN250 380 Z=1:A=1:B=21:IFB>NTHENB=N 390 GOSUB540:PRINT" "D$(0)"[146]" 400 FORI=ATOB:PRINTG%(D%(I))TAB(5)D$(D%(I))TAB(23)F$(D%(I)):NEXT 410 PRINT""G%(N+1);"[146] FREIE BLOECKE"; 420 GETA$:IFA$=""THEN420 430 X=ASC(A$)-132:IFX<1ORX>4THEN420 440 ONXGOTO450,480,500,510 450 A=A-20:IFA<1THENA=1 460 B=A+20:IFB>NTHENB=N 470 GOTO390 480 A=A+20:IFA>NTHENA=N 490 GOTO460 500 PRINT"[147]TSCHUESS":END 510 PRINT#4,CHR$(14)D$(0):PRINT#4,CHR$(27);"D";CHR$(6);CHR$(26);CHR$(0) 520 FORI=1TON:GG$=STR$(G%(D%(I))):PRINT#4,GG$SPC(5-LEN(GG$))P$D$(D%(I)); 525 PRINT#4,SPC(20-LEN(D$(D%(I))))P$F$(D%(I)):NEXT 530 PRINT#4:PRINT#4,G%(N+1)" BLOECKE FREI":PRINT#4:GOTO420 540 PRINT"[147]" 550 PRINTTAB(32)"F1[146]" 560 PRINTTAB(28)"RUECKWAERTS" 570 PRINTTAB(29)"BLAETTERN" 580 PRINTTAB(32)"F3" 590 PRINTTAB(29)"VORWAERTS" 600 PRINTTAB(29)"BLAETTERN" 610 PRINTTAB(32)"F5" 620 PRINTTAB(31)"ENDE" 630 PRINTTAB(32)"F7" 640 PRINTTAB(30)"AUSGABE" 650 PRINTTAB(30)"DRUCKER" 660 RETURN